#pragma once

#include "GameObjects\Character.h"
#include "GameObjects\Room.h"
#include "Command.h"

class Player : public std::enable_shared_from_this<Player>
{
public:
	Player(const CharacterPtr &character, const RoomPtr &room);
	~Player();

	void initialize();

	void handle(const CommandPtr &command, const std::vector<std::string> &args);
	void update(unsigned int tick);

	void setRoom(const RoomPtr &room) { this->room = room; }
	const RoomPtr &getRoom() const { return room; }

	void setCharacter(const CharacterPtr &character) { this->character = character; }
	const CharacterPtr &getCharacter() const { return character; }

private:
	CharacterPtr character;
	RoomPtr room;
};
